"""
    用于LLM的登录功能
"""

import time

from automatic import page
from automatic.base.base import Base
from automatic.base.get_logger import GetLogger

# 获取log日志器
log = GetLogger().get_logger()


class PageLogin(Base):
    # 输入用户名
    def page_input_username(self, username):
        log.info("[page_login]:对{}元素输入用户名{}操作".format(page.login_username, username))
        self.base_input(page.login_username, username)

    # 输入密码
    def page_input_password(self, password):
        log.info("[page_login]:对{}元素输入密码{}操作".format(page.login_password, password))
        self.base_input(page.login_password, password)

    # 输入验证码
    def page_input_verify_code(self):
        log.info("[page_login]:对{}元素进行获取文本操作".format(page.login_verify_code))
        vc = self.base_get_text(page.login_verify_code)
        log.info("[page_login]:对{}元素输入验证码{}操作".format(page.login_input_verify_code, vc))
        self.base_input(page.login_input_verify_code, vc)

    #点击登录
    def page_click_login_button(self):
        log.info("[page_login]:对{}元素进行点击操作".format(page.login_button))
        self.base_click(page.login_button)

    #获取 错误提示信息
    def page_get_err_info(self):
        return self.base_get_text(page.login_err_info)

    #判断是否登录成功
    def page_if_login_success(self):
        #注意 一定要将找元素的结果返回，True：存在
        return self.base_element_is_exist(page.login_text_list)

    #退出登录
    def page_click_logout_link(self):
        self.base_move_to_element(page.login_userinfo)
        self.base_click(page.login_logout_link)


    #组合业务方法 登录业务直接调用
    def page_login(self,username,password):
        log.info("[page_login]:正在执行登录操作，用户名：{}，密码：{}".format(username,password))
        self.page_input_username(username)
        time.sleep(2)
        self.page_input_password(password)
        time.sleep(2)
        self.page_input_verify_code()
        time.sleep(2)
        self.page_click_login_button()
        time.sleep(1)

    #组合登录业务方法 给其他依赖模块使用
    def page_login_success(self,username="root",password="123456"):
        log.info("[page_login]:正在执行登录操作：用户名{}，密码：{}".format(username,password))
        self.page_input_username(username)
        time.sleep(1)
        self.page_input_password(password)
        time.sleep(1)
        self.page_input_verify_code()
        time.sleep(1)
        self.page_click_login_button()
        time.sleep(1)
